home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 9 / FM Towns Free Software Collection 9.iso / t_os / tool / jodoshi / jo.bas < prev    next >
BASIC Source File  |  1994-11-16  |  2KB  |  72 lines

  1. 10 BACKLEN=5
  2. 20 CLEAR:CLS
  3. 30 '*********************************************
  4. 40 BACKLEN=3 '最高バック参照距離
  5. 50 OFTENBACK=.9!'メイン問題後に復習する確率
  6. 60 '*********************************************
  7. 70 CONSOLE 1,20,2
  8. 80 DIM D$(1,100)
  9. 90 'ON ERROR GOTO *ER
  10. 100 FILES "*.ans"
  11. 110 PRINT
  12. 120 LINE INPUT "ファイル名only:",F$
  13. 130 OPEN "I",#1,F$+".ask"
  14. 140 OPEN "I",#2,F$+".ans"
  15. 150 L=1:LL=1'
  16. 160 '
  17. 170 '
  18. 180 IF EOF(1)=0 THEN
  19. 190 'read file
  20. 200    INPUT#1,D$(0,L)
  21. 210    L=L+1
  22. 220    GOTO 180
  23. 230 ENDIF
  24. 240 '
  25. 250 IF EOF(2)=0 THEN
  26. 260 'read2 file
  27. 270    INPUT#2,D$(1,LL)
  28. 280    LL=LL+1
  29. 290    GOTO 250
  30. 300 ENDIF
  31. 310 IF L<LL THEN LAST=L ELSE LAST=LL
  32. 320 IF D$(0,L)=""OR D$(1,L)="" ELSE 380 
  33. 330    L=LAST-1:LL=LAST-1
  34. 340    LAST=LAST-1
  35. 350    GOTO 320
  36. 360 '
  37. 370 '***************************************************
  38. 380 PRINT "シャッフル"
  39. 390 FOR L=1 TO LAST*2
  40. 400    RANDOMIZE -TIME:RA=INT(RND*LAST+1)
  41. 410    RANDOMIZE +TIME:RB=INT(RND*LAST+1)
  42. 420    TMP$(0)=D$(0,RA):TMP$(1)=D$(1,RA)'問題と答え
  43. 430    D$(0,RA)=D$(0,RB):D$(1,RA)=D$(1,RB)
  44. 440    D$(0,RB)=TMP$(0):D$(1,RB)=TMP$(1)
  45. 450 NEXT L
  46. 460 '****************************************************
  47. 470 PRINT "出題開始"
  48. 480 FOR L=1 TO LAST
  49. 490     PRINT D$(0,L)
  50. 500     INPUT TMP$
  51. 510     PRINT D$(1,L)
  52. 520     WAIT 10
  53. 530     WHILE I$<>"":I$=INKEY$:WEND  'バッファクリア
  54. 540     PRINT "hit any key":I$=INPUT$(1):PRINT ""
  55. 550     RANDOMIZE -TIME
  56. 560     IF L>BACKLEN AND RND<OFTENBACK/BACKLEN THEN *復習 ELSE *進行
  57. 570 *復習
  58. 580     R=INT(RND*5)
  59. 590     PRINT "問題:"+D$(0,L-R-1)
  60. 600     INPUT "answer:",TMP$
  61. 610     PRINT "解答:"+D$(1,L-R-1)
  62. 620     WAIT 10
  63. 630     WHILE I$<>"":I$=INKEY$:WEND
  64. 640     PRINT "hit any key":I$=INPUT$(1):PRINT ""
  65. 650 *進行
  66. 660 RANDOMIZE -TIME
  67. 670 NEXT L
  68. 680 INPUT "REPLAY?",I$:IF I$="y" OR i$="Y" THEN 380 ELSE IF I$="" THEN 680
  69. 690 CLEAR:GOTO 20
  70. 700 *ER
  71. 710 IF ERL=100 THEN PRINT "ディスクいれて-":I$=INPUT$(1):RESUME 100
  72.